//
//  main.c
//  结构体的初始化
//
//  Created by ws on 2017/7/25.
//  Copyright © 2017年 王松. All rights reserved.
//

#include <stdio.h>

/**
 1.定义结构体类型
 2.定义结构体变量
 3.对结构体变量初始化
注意点:结构体如果没有初始化,它里面都是垃圾值
 */
int main(int argc, const char * argv[]) {
    //1.定义结构体类型
    struct Person{
        int age;
        char *name;
        double height;
    };
    //2.定义结构体变量
    //2.1先定义结构体变量然后再初始化
    struct Person p1;
    //2.1.1 一个一个赋值
    p1.age = 10;
    p1.name = "ss";
    p1.height = 1.3;
    //2.1.2 整体赋值的方式
    p1 = (struct Person){20,"小明",1.7};//赋值的时候，{}中元素的顺序与定义结构体时成员顺序相同
    
    //    int nums[5];
    //  数组名称(地址常量)是不可以改变的
    //  nums =(int[5]){1,2,3,4,5};
    //输出
    printf("age = %d,name = %s,height = %.2lf\n",p1.age,p1.name,p1.height);
    
    //2.2定义结构体变量的同时进行初始化
    struct Person p2 = {15,"xx",1.5};
    printf("age = %d,name = %s,height = %.2lf\n",p2.age,p2.name,p2.height);
    //3.同种类型的结构体之间可以相互赋值
    struct Person p3;
    p3 = p2;
    printf("age = %d,name = %s,height = %.2lf\n",p3.age,p3.name,p3.height);
    return 0;
}
